Generally, computers and the programs executed by them have a voracious appetite for unlimited amounts of fast memory. Unfortunately, memory (especially fast memory) is generally expensive both in terms of cost and die area. The traditional solution to the desire for unlimited, fast memory is a memory hierarchy or system of tiers or levels of memories. In general, the tiered memory system includes a plurality of levels of memories, each level slower but larger than the previous tier.
A typical computer memory hierarchy may include three levels. The fastest and smallest memory (often called a “Level 1 (L1) cache”) is closest to the processor and includes static random access memory (RAM and SRAM). The next tier or level is often called a Level 2 (L2) cache, and is larger but slower than the L1 cache. The third level is the main memory and generally includes dynamic RAM (DRAM), often inserted into memory modules. However, other systems may have more or less memory tiers. Also, in some systems, the processor registers and the permanent or semi-permanent storage devices (e.g., hard drives, solid-state drives, etc.) may be considered part of the memory system.